package com.example.forum.utils;

import org.springframework.util.DigestUtils;

public class MD5Util {
    /**
     * 普通MD5加密
     */
    public static String md5(String str){
        String md5 = DigestUtils.md5DigestAsHex(str.getBytes());
        return md5;
    }

    /**
     * 原始字符串与与key组合进行加密
     */
    public static String md5(String str , String key){
        String md5 = DigestUtils.md5DigestAsHex((str + key).getBytes());
        return md5;
    }

    /**
     * 原始字符串加密后与扰动字符进行加密
     */
    public static String md5Salt(String str,String salt){
        String md5 = DigestUtils.md5DigestAsHex(str.getBytes());

        String newStr = md5 + salt;

        return DigestUtils.md5DigestAsHex(newStr.getBytes());
    }

    /**
     * 校验传入的密码加密后与扰动字符相加后是否等于正确密码
     */
    public static boolean verifyOriginalAndCiphertext(String originalStr,String salt,String verifyStr){
        String md5 = md5Salt(originalStr,salt);

        if(!md5.equals(verifyStr)){
            return  false;
        }
        return true;
    }
}
